Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.
Input: [5,7] Output: 4
Input: [0,1] Output: 0
implSolution{pubfnrange_bitwise_and(m:i32,n:i32) -> i32{letmut result = n;for i in m..n { result &= i;} result }}
implSolution{pubfnrange_bitwise_and(m:i32,n:i32) -> i32{letmut n = n;while n > m { n &= n - 1;} n }}
implSolution{pubfnrange_bitwise_and(m:i32,n:i32) -> i32{if n > m {Self::range_bitwise_and(m >> 1, n >> 1) << 1}else{ m }}}
implSolution{pubfnrange_bitwise_and(m:i32,n:i32) -> i32{letmut result = 0;letmut mask = 1 << 30;while mask != 0 && m & mask == n & mask { result |= m & mask; mask >>= 1;} result }}